package main

import "fmt"

func main() {

	// 创建管道
	ch := make(chan int, 3)

	// 给管道里面存储数据
	ch <- 10
	ch <- 21
	ch <- 32

	// 获取管道里面的内容
	a := <-ch
	fmt.Println("打印出管道里的值:", a)
	fmt.Println("打印出管道里的值:", <-ch)
	fmt.Println("打印出管道里的值:", <-ch)

	// 管道里面的值、容量、长度
	fmt.Printf("地址:%v 容量:%v 长度:%v \n", ch, cap(ch), len(ch))

	// 管道类型
	fmt.Printf("%T \n", ch)

	// 管道阻塞(当没有数据取的时候,会出现阻塞,同时当管道满了,继续存也会)
	// 没有数据取,出现阻塞
	<-ch
	// 管道满了，继续存，也会出现阻塞
	ch <- 10
	ch <- 10
	ch <- 10
	ch <- 10

}
